@Lemon
3年前 提问
2个回答

什么是 DNS 通过强制门户进行隧道传输

在下炳尚
3年前
官方采纳

强制门户

DNS隧道,即利用DNS请求和响应来承载经过编码或加密的数据内容,攻击者需要接管某个域名的NS服务器,使得对该域名的所有子域解析请求最终到达该台NS服务器上,最终,一条通信信道将在受控机器和攻击者的NS服务器之间建立(中间可能经过更多的NS节点),信道的建立、维持和通信基于DNS查询的请求和响应。

强制网络门户(captive portal)是一个Web页面,它是使用公共访问网络的用户在被授予访问权限前必须访问和交互的页面。强制网络门户通常在为因特网用户提供免费的Wi-Fi热点服务的商业中心、机场、宾馆大厅、咖啡厅和其他公共场所中使用。

在一个带有强制网络门户的网络中,一个用户第一次登录的时候,在被授予因特网的访问权限之前,会看到一个要求做一些特定动作的Web页面。一个简单的强制网络门户会强制用户至少看一眼(如果不是读的话)可接受用户策略页面,然后点击一个按钮表示同意策略条款。这大概是因为这样在碰到有用户在登录之际犯罪或做了其他破坏性的动作时可以为服务提供者免责的缘故。在有些强制网络门户中,会显示服务提供者的赞助商的广告,用户在被授予因特网访问权限之前必须点击一下或者关闭出现的窗口。还有一些强制网络门户在用户获得因特网访问权限之前会要求给出预设的用户ID和密码信息。这种认证可以打消使用无限热点作为犯罪活动的站点的积极性。大部分带有强制网络门户的服务器都同时装有反病毒和防火墙程序,用来保护用户的计算机免受攻击,这种攻击可能是来自因特网的,也可能来自同一个网络中的计算机。

即使是一个带有简单强制网络门户的免费公共访问网络,总会有人会不断地连接网络,以一种连续的方式使用网络来下载音乐、视频或其他大文件。这种行为称作带宽扭曲。这在强制网络门户中可以通过附加的编程来使其最小化。这种编程可以控制哪些大文件可下载、限制可下载文件的大小(以千字节或兆字节为单位),限制在单个会话中同时下载的数目或者阻塞那些通常用来下载大文件的Web站点。这被称作带宽扼杀或流量修整。

强制门户实现原理

强制门户有两种实现方法:

1.当WAN侧网络断开的情况下,DNS请求被欺骗为接入网络设备的 IP, 请求的HTTP目标地址,被跳转到在接入网络设备上部署的页面, 此属于非典型门户。主要用于诊断设备的连通性, 给用户以提示设备异常的机会。

如果是HTTPS请求, 浏览器不会对主动跳转到门户页面上,需要用户点击继续(由于服务器证书不对) 。

2.当WAN侧网络连通的情况下,DNS工作正常,对于所有的HTTP请求,在设备的防火墙中被终止,不继续由路由模块转送到目的主机上,同时防火墙模块给客户端会送 HTTP 302 跳转报文, 客户端收到后跳转到目的门户页面上。

请注意此处凡是可重定向的请求,都是HTTP报文,不是HTTPS。

Simon
3年前

现在,客户端的浏览器/ netcat / metasploit将以ACK数据包作为响应,并且将建立连接。不过,有一个警告。如果服务器需要发送数据怎么办?它不能仅发送另一个DNS答复,因为客户端的路由器将不再将其路由到客户端。该解决方案有点笨拙,但很简单:客户端只需要每隔一段时间发送一个空的DNS请求,服务器就可以用数据进行回复。
从表面上看可能很简单,但是实现起来有些困难。相信我,我尝试过。幸运的是,已经有用于DNS隧道的程序。我正在使用的一种叫做碘 56。您可以使用安装它apt-get install iodine。这是您需要的:
服务器和客户端。它们都包含在iodine包装中。
域名,可以设置名称服务器。您可以从dot.tk中获得一个。
另外两个域用于设置名称服务器。
您可以将端口53转发到的计算机。
您必须将名称服务器设置为指向您的碘服务器的域。